package av;

import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;

public class Internals {
    public static final String PLUGIN_THREAD_POOL_SIZE_MINIMUM = "plugin.thread-pool.size.minimum";
    public static final String PLUGIN_THREAD_POOL_SIZE_MAXIMUM = "plugin.thread-pool.size.maximum";
    public static final String PLUGIN_THREAD_POOL_KEEP_ALIVE_SECONDS = "plugin.thread-pool.keep-alive.seconds";
    public static final String CALLBACK_THREAD_POOL_SIZE_MAXIMUM = "callback.thread-pool.size.maximum";
    public static final String CALLBACK_THREAD_POOL_KEEP_ALIVE_SECONDS = "callback.thread-pool.keep-alive.seconds";
    public static final String PLUGIN_AUTHENTICATION_NEED_ALL_PLUGINS_TO_RETURN_TRUE = "plugin.authentication.need-all-plugins-to-return-true";
    public static final String MQTT_CONNECTION_KEEP_ALIVE_FACTOR = "mqtt.connection.keep-alive.factor";
    public static final String MQTT_INFLIGHT_PARALLEL_TOPIC_COUNT = "mqtt.inflight.parallel.topic.count";
    public static final String PERSISTENCE_RETAINED_MESSAGES_BUCKET_COUNT = "persistence.retained-mesages.bucket.count";
    public static final String PERSISTENCE_CLIENT_SESSIONS_BUCKET_COUNT = "persistence.client-sessions.bucket.count";
    public static final String PERSISTENCE_OUTGOING_MESSAGE_FLOW_BUCKET_COUNT = "persistence.outgoing-message-flow.bucket.count";
    public static final String MESSAGE_ORDERING_QOS_ZERO = "message-ordering.qos.zero";
    public static final String EVENT_LOOP_GROUP_SHUTDOWN_TIMEOUT = "event-loop-group.shutdown.timeout";
    public static final String OUTGOING_MESSAGE_FLOW_IN_MEMORY_PERSISTENCE_LOCK_SIZE = "outgoing-message-flow.in-memory-persistence.lock.size";
    public static final String MESSAGE_ID_PRODUCER_LOCK_SIZE = "message-id-producer.lock.size";
    public static final String CLUSTER_RETRY_INTERVAL_STATE_REQUEST = "cluster.retry_interval.state_request";
    public static final String CLUSTER_RETRY_INTERVAL_REPLICATION_FINISHED = "cluster.retry_interval.replication_finished";
    public static final String CLUSTER_REQUEST_DEFAULT_TIMEOUT = "cluster.request.default_timeout";
    public static final String CLUSTER_CONNECT_TIMEOUT = "cluster.connect.timeout";
    public static final String CLUSTER_THREAD_POOL_KEEP_ALIVE_SECONDS = "cluster.thread-pool.keep-alive.seconds";
    public static final String CLUSTER_THREAD_POOL_SIZE_MINIMUM = "cluster.thread-pool.size.minimum";
    public static final String CLUSTER_THREAD_POOL_SIZE_MAXIMUM = "cluster.thread-pool.size.maximum";
    public static final String CLUSTER_THREAD_POOL_SCHEDULED_SIZE = "cluster.thread-pool.scheduled.size";
    public static final String CLUSTER_REQUEST_EVENTBUS_THREAD_POOL_KEEP_ALIVE_SECONDS = "cluster.request-eventbus.thread-pool.keep-alive.seconds";
    public static final String CLUSTER_REQUEST_EVENTBUS_THREAD_POOL_SIZE_MINIMUM = "cluster.request-eventbus.thread-pool.size.minimum";
    public static final String CLUSTER_REQUEST_EVENTBUS_THREAD_POOL_SIZE_MAXIMUM = "cluster.request-eventbus.thread-pool.size.maximum";
    public static final String CLUSTER_PUBLISH_ID_CACHE_DURATION = "cluster.publish_id_cache.duration";
    public static final String CLUSTER_PUBLISH_ID_CACHE_SIZE = "cluster.publish_id_cache-size";
    public static final String SHARED_SUBSCRIPTION_CACHE_DURATION = "shared_subscription_cache.duration";
    public static final String SHARED_SUBSCRIPTION_CACHE_PROBABILITY = "shared_subscription_cache.probability";
    public static final String CLEANUP_JOB_SCHEDULE = "cleanup_job.schedule";
    public static final String TOMBSTONE_MAX_AGE = "tombstone.max_age";
    public static final String CLUSTER_UDP_IP_TTL = "cluster.udp.ip_ttl";
    public static final String CLUSTER_UDP_TOS = "cluster.udp.tos";
    public static final String CLUSTER_UDP_UCAST_RECV_BUF_SIZE = "cluster.udp.ucast_recv_buf_size";
    public static final String CLUSTER_UDP_UCAST_SEND_BUF_SIZE = "cluster.udp.ucast_send_buf_size";
    public static final String CLUSTER_UDP_MCAST_RECV_BUF_SIZE = "cluster.udp.mcast_recv_buf_size";
    public static final String CLUSTER_UDP_MCAST_SEND_BUF_SIZE = "cluster.udp.mcast_send_buf_size";
    public static final String CLUSTER_UDP_MAX_BUNDLE_SIZE = "cluster.udp.max_bundle_size";
    public static final String CLUSTER_UDP_MAX_BUNDLE_TIMEOUT = "cluster.udp.max_bundle_timeout";
    public static final String CLUSTER_UDP_ENABLE_DIAGNOSTICS = "cluster.udp.enable_diagnostics";
    public static final String CLUSTER_UDP_TIMER_MIN_THREADS = "cluster.udp.timer_min_threads";
    public static final String CLUSTER_UDP_TIMER_MAX_THREADS = "cluster.udp.timer_max_threads";
    public static final String CLUSTER_UDP_TIMER_KEEP_ALIVE_TIME = "cluster.udp.timer_keep_alive_time";
    public static final String CLUSTER_UDP_TIMER_QUEUE_MAX_SIZE = "cluster.udp.timer_queue_max_size";
    public static final String CLUSTER_UDP_THREAD_POOL_ENABLED = "cluster.udp.thread_pool_enabled";
    public static final String CLUSTER_UDP_THREAD_POOL_MIN_THREADS = "cluster.udp.thread_pool_min_threads";
    public static final String CLUSTER_UDP_THREAD_POOL_MAX_THREADS = "cluster.udp.thread_pool_max_threads";
    public static final String CLUSTER_UDP_THREAD_POOL_KEEP_ALIVE_TIME = "cluster.udp.thread_pool_keep_alive_time";
    public static final String CLUSTER_UDP_THREAD_POOL_QUEUE_ENABLED = "cluster.udp.thread_pool_queue_enabled";
    public static final String CLUSTER_UDP_THREAD_POOL_QUEUE_MAX_SIZE = "cluster.udp.thread_pool_queue_max_size";
    public static final String CLUSTER_UDP_OOB_THREAD_POOL_ENABLED = "cluster.udp.oob_thread_pool_enabled";
    public static final String CLUSTER_UDP_OOB_THREAD_POOL_MIN_THREADS = "cluster.udp.oob_thread_pool_min_threads";
    public static final String CLUSTER_UDP_OOB_THREAD_POOL_MAX_THREADS = "cluster.udp.oob_thread_pool_max_threads";
    public static final String CLUSTER_UDP_OOB_THREAD_POOL_KEEP_ALIVE_TIME = "cluster.udp.oob_thread_pool_keep_alive_time";
    public static final String CLUSTER_UDP_OOB_THREAD_POOL_QUEUE_ENABLED = "cluster.udp.oob_thread_pool_queue_enabled";
    public static final String CLUSTER_UDP_OOB_THREAD_POOL_QUEUE_MAX_SIZE = "cluster.udp.oob_thread_pool_queue_max_size";
    public static final String CLUSTER_UDP_MERGE3_MIN_INTERVAL = "cluster.udp.merge3.min_interval";
    public static final String CLUSTER_UDP_MERGE3_MAX_INTERVAL = "cluster.udp.merge3.max_interval";
    public static final String CLUSTER_UDP_FD_SOCK_START_PORT = "cluster.udp.fd_sock.start_port";
    public static final String CLUSTER_UDP_FD_SOCK_CLIENT_BIND_PORT = "cluster.udp.fd_sock.client_bind_port";
    public static final String CLUSTER_UDP_FD_SOCK_PORT_RANGE = "cluster.udp.fd_sock.port_range";
    public static final String CLUSTER_UDP_FD_SOCK_NUM_TRIES = "cluster.udp.fd_sock.num_tries";
    public static final String CLUSTER_UDP_VERIFY_SUSPECT_TIMEOUT = "cluster.udp.verify_suspect.timeout";
    public static final String CLUSTER_UDP_NACKACK2_XMIT_INTERVAL = "cluster.udp.nackack2.xmit_interval";
    public static final String CLUSTER_UDP_NACKACK2_XMIT_TABLE_NUM_ROWS = "cluster.udp.nackack2.xmit_table_num_rows";
    public static final String CLUSTER_UDP_NACKACK2_XMIT_TABLE_MSGS_PER_ROW = "cluster.udp.nackack2.xmit_table_msgs_per_row";
    public static final String CLUSTER_UDP_NACKACK2_XMIT_TABLE_MAX_COMPACTION_TIME = "cluster.udp.nackack2.xmit_table_max_compaction_time";
    public static final String CLUSTER_UDP_NACKACK2_MAX_MSG_BATCH_SIZE = "cluster.udp.nackack2.max_msg_batch_size";
    public static final String CLUSTER_UDP_NACKACK2_USE_MCAST_XMIT = "cluster.udp.nackack2.use_mcast_xmit";
    public static final String CLUSTER_UDP_NACKACK2_DISCARD_DELIVERED_MSGS = "cluster.udp.nackack2.discard_delivered_msgs";
    public static final String CLUSTER_UDP_UNICAST3_XMIT_INTERVAL = "cluster.udp.unicast3.xmit_interval";
    public static final String CLUSTER_UDP_UNICAST3_XMIT_TABLE_NUM_ROWS = "cluster.udp.unicast3.xmit_table_num_rows";
    public static final String CLUSTER_UDP_UNICAST3_XMIT_TABLE_MSGS_PER_ROW = "cluster.udp.unicast3.xmit_table_msgs_per_row";
    public static final String CLUSTER_UDP_UNICAST3_XMIT_TABLE_MAX_COMPACTION_TIME = "cluster.udp.unicast3.xmit_table_max_compaction_time";
    public static final String CLUSTER_UDP_UNICAST3_CONN_EXPIRY_TIMEOUT = "cluster.udp.unicast3.conn_expiry_timeout";
    public static final String CLUSTER_UDP_UNICAST3_MAX_MSG_BATCH_SIZE = "cluster.udp.unicast3.max_msg_batch_size";
    public static final String CLUSTER_UDP_STABLE_STABILITY_DELAY = "cluster.udp.stable.stability_delay";
    public static final String CLUSTER_UDP_STABLE_DESIRED_AVG_GOSSIP = "cluster.udp.stable.desired_avg_gossip";
    public static final String CLUSTER_UDP_STABLE_MAX_BYTES = "cluster.udp.stable.max_bytes";
    public static final String CLUSTER_UDP_GMS_PRINT_LOCAL_ADDR = "cluster.udp.gms.print_local_addr";
    public static final String CLUSTER_UDP_GMS_JOIN_TIMEOUT = "cluster.udp.gms.join_timeout";
    public static final String CLUSTER_UDP_GMS_VIEW_BUNDLING = "cluster.udp.gms.view_bundling";
    public static final String CLUSTER_UDP_UFC_MAX_CREDITS = "cluster.udp.ufc.max_credits";
    public static final String CLUSTER_UDP_UFC_MIN_THRESHOLD = "cluster.udp.ufc.min_threshold";
    public static final String CLUSTER_UDP_MFC_MAX_CREDITS = "cluster.udp.mfc.max_credits";
    public static final String CLUSTER_UDP_MFC_MIN_THRESHOLD = "cluster.udp.mfc.min_threshold";
    public static final String CLUSTER_UDP_FRAG2_FRAG_SIZE = "cluster.udp.frag2.frag_size";
    public static final String CLUSTER_UDP_RSVP_RESEND_INTERVAL = "cluster.udp.rsvp.resend_interval";
    public static final String CLUSTER_UDP_RSVP_TIMEOUT = "cluster.udp.rsvp.timeout";
    public static final String CLUSTER_TCP_RECV_BUF_SIZE = "cluster.tcp.recv_buf_size";
    public static final String CLUSTER_TCP_SEND_BUF_SIZE = "cluster.tcp.send_buf_size";
    public static final String CLUSTER_TCP_MAX_BUNDLE_SIZE = "cluster.tcp.max_bundle_size";
    public static final String CLUSTER_TCP_MAX_BUNDLE_TIMEOUT = "cluster.tcp.max_bundle_timeout";
    public static final String CLUSTER_TCP_USE_SEND_QUEUES = "cluster.tcp.use_send_queues";
    public static final String CLUSTER_TCP_SOCK_CONN_TIMEOUT = "cluster.tcp.sock_conn_timeout";
    public static final String CLUSTER_TCP_TIMER_MIN_THREADS = "cluster.tcp.timer_min_threads";
    public static final String CLUSTER_TCP_TIMER_MAX_THREADS = "cluster.tcp.timer_max_threads";
    public static final String CLUSTER_TCP_TIMER_KEEP_ALIVE_TIME = "cluster.tcp.timer_keep_alive_time";
    public static final String CLUSTER_TCP_TIMER_QUEUE_MAX_SIZE = "cluster.tcp.timer_queue_max_size";
    public static final String CLUSTER_TCP_THREAD_POOL_ENABLED = "cluster.tcp.thread_pool_enabled";
    public static final String CLUSTER_TCP_THREAD_POOL_MIN_THREADS = "cluster.tcp.thread_pool_min_threads";
    public static final String CLUSTER_TCP_THREAD_POOL_MAX_THREADS = "cluster.tcp.thread_pool_max_threads";
    public static final String CLUSTER_TCP_THREAD_POOL_KEEP_ALIVE_TIME = "cluster.tcp.thread_pool_keep_alive_time";
    public static final String CLUSTER_TCP_THREAD_POOL_QUEUE_ENABLED = "cluster.tcp.thread_pool_queue_enabled";
    public static final String CLUSTER_TCP_THREAD_POOL_QUEUE_MAX_SIZE = "cluster.tcp.thread_pool_queue_max_size";
    public static final String CLUSTER_TCP_OOB_THREAD_POOL_ENABLED = "cluster.tcp.oob_thread_pool_enabled";
    public static final String CLUSTER_TCP_OOB_THREAD_POOL_MIN_THREADS = "cluster.tcp.oob_thread_pool_min_threads";
    public static final String CLUSTER_TCP_OOB_THREAD_POOL_MAX_THREADS = "cluster.tcp.oob_thread_pool_max_threads";
    public static final String CLUSTER_TCP_OOB_THREAD_POOL_KEEP_ALIVE_TIME = "cluster.tcp.oob_thread_pool_keep_alive_time";
    public static final String CLUSTER_TCP_OOB_THREAD_POOL_QUEUE_ENABLED = "cluster.tcp.oob_thread_pool_queue_enabled";
    public static final String CLUSTER_TCP_OOB_THREAD_POOL_QUEUE_MAX_SIZE = "cluster.tcp.oob_thread_pool_queue_max_size";
    public static final String CLUSTER_TCP_MERGE3_MIN_INTERVAL = "cluster.tcp.merge3.min_interval";
    public static final String CLUSTER_TCP_MERGE3_MAX_INTERVAL = "cluster.tcp.merge3.max_interval";
    public static final String CLUSTER_TCP_FD_TIMEOUT = "cluster.tcp.fd.timeout";
    public static final String CLUSTER_TCP_FD_MAX_TRIES = "cluster.tcp.fd.max_tries";
    public static final String CLUSTER_TCP_VERIFY_SUSPECT_TIMEOUT = "cluster.tcp.verify_suspect.timeout";
    public static final String CLUSTER_TCP_FD_SOCK_START_PORT = "cluster.tcp.fd_sock.start_port";
    public static final String CLUSTER_TCP_FD_SOCK_CLIENT_BIND_PORT = "cluster.tcp.fd_sock.client_bind_port";
    public static final String CLUSTER_TCP_FD_SOCK_PORT_RANGE = "cluster.tcp.fd_sock.port_range";
    public static final String CLUSTER_TCP_FD_SOCK_NUM_TRIES = "cluster.tcp.fd_sock.num_tries";
    public static final String CLUSTER_TCP_NAKACK2_USE_MCAST_XMIT = "cluster.tcp.nakack2.use_mcast_xmit";
    public static final String CLUSTER_TCP_NAKACK2_DISCARD_DELIVERED_MSGS = "cluster.tcp.nakack2.discard_delivered_msgs";
    public static final String CLUSTER_TCP_STABLE_STABILITY_DELAY = "cluster.tcp.stable.stability_delay";
    public static final String CLUSTER_TCP_STABLE_DESIRED_AVG_GOSSIP = "cluster.tcp.stable.desired_avg_gossip";
    public static final String CLUSTER_TCP_STABLE_MAX_BYTES = "cluster.tcp.stable.max_bytes";
    public static final String CLUSTER_TCP_GMS_PRINT_LOCAL_ADDR = "cluster.tcp.gms.print_local_addr";
    public static final String CLUSTER_TCP_GMS_JOIN_TIMEOUT = "cluster.tcp.gms.join_timeout";
    public static final String CLUSTER_TCP_GMS_VIEW_BUNDLING = "cluster.tcp.gms.view_bundling";
    public static final String CLUSTER_TCP_MFC_MAX_CREDITS = "cluster.tcp.mfc.max_credits";
    public static final String CLUSTER_TCP_MFC_MIN_THRESHOLD = "cluster.tcp.mfc.min_threshold";
    public static final String CLUSTER_TCP_FRAG2_FRAG_SIZE = "cluster.tcp.frag2.frag_size";
    public static final String CLUSTER_S3_TIMEOUT = "cluster.s3.timeout";
    public static final ImmutableMap<String, String> DEFAULT = buildDefaultConfigs();

    @VisibleForTesting
    static ImmutableMap<String, String> buildDefaultConfigs() {
        ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<>();
        builder.put(PLUGIN_THREAD_POOL_SIZE_MINIMUM, "5");
        builder.put(PLUGIN_THREAD_POOL_SIZE_MAXIMUM, "5");
        builder.put(PLUGIN_THREAD_POOL_KEEP_ALIVE_SECONDS, "30");
        builder.put(CALLBACK_THREAD_POOL_SIZE_MAXIMUM, Integer.toString(Runtime.getRuntime().availableProcessors() * 2));
        builder.put(CALLBACK_THREAD_POOL_KEEP_ALIVE_SECONDS, "30");
        builder.put(PLUGIN_AUTHENTICATION_NEED_ALL_PLUGINS_TO_RETURN_TRUE, "false");
        builder.put(MQTT_CONNECTION_KEEP_ALIVE_FACTOR, "1.5");
        builder.put(MQTT_INFLIGHT_PARALLEL_TOPIC_COUNT, "3");
        builder.put(PERSISTENCE_RETAINED_MESSAGES_BUCKET_COUNT, "2");
        builder.put(PERSISTENCE_CLIENT_SESSIONS_BUCKET_COUNT, "2");
        builder.put(PERSISTENCE_OUTGOING_MESSAGE_FLOW_BUCKET_COUNT, "4");
        builder.put(MESSAGE_ORDERING_QOS_ZERO, "true");
        builder.put(EVENT_LOOP_GROUP_SHUTDOWN_TIMEOUT, "360");
        builder.put(OUTGOING_MESSAGE_FLOW_IN_MEMORY_PERSISTENCE_LOCK_SIZE, "8");
        builder.put(MESSAGE_ID_PRODUCER_LOCK_SIZE, "8");
        builder.put(CLUSTER_RETRY_INTERVAL_STATE_REQUEST, "2000");
        builder.put(CLUSTER_RETRY_INTERVAL_REPLICATION_FINISHED, "1000");
        builder.put(CLUSTER_REQUEST_DEFAULT_TIMEOUT, "5000");
        builder.put(CLUSTER_CONNECT_TIMEOUT, "10000");
        builder.put(CLUSTER_THREAD_POOL_KEEP_ALIVE_SECONDS, "30");
        builder.put(CLUSTER_THREAD_POOL_SIZE_MINIMUM, "0");
        builder.put(CLUSTER_THREAD_POOL_SIZE_MAXIMUM, "8");
        builder.put(CLUSTER_THREAD_POOL_SCHEDULED_SIZE, "4");
        builder.put(CLUSTER_REQUEST_EVENTBUS_THREAD_POOL_KEEP_ALIVE_SECONDS, "30");
        builder.put(CLUSTER_REQUEST_EVENTBUS_THREAD_POOL_SIZE_MINIMUM, "0");
        builder.put(CLUSTER_REQUEST_EVENTBUS_THREAD_POOL_SIZE_MAXIMUM, "4");
        builder.put(CLUSTER_PUBLISH_ID_CACHE_DURATION, "150");
        builder.put(CLUSTER_PUBLISH_ID_CACHE_SIZE, "1000000");
        builder.put(SHARED_SUBSCRIPTION_CACHE_DURATION, "360");
        builder.put(SHARED_SUBSCRIPTION_CACHE_PROBABILITY, "90");
        builder.put(CLEANUP_JOB_SCHEDULE, "900");
        builder.put(TOMBSTONE_MAX_AGE, "18000");
        builder.put(CLUSTER_UDP_IP_TTL, "4");
        builder.put(CLUSTER_UDP_TOS, "8");
        builder.put(CLUSTER_UDP_UCAST_RECV_BUF_SIZE, "50000000");
        builder.put(CLUSTER_UDP_UCAST_SEND_BUF_SIZE, "50000000");
        builder.put(CLUSTER_UDP_MCAST_RECV_BUF_SIZE, "50000000");
        builder.put(CLUSTER_UDP_MCAST_SEND_BUF_SIZE, "50000000");
        builder.put(CLUSTER_UDP_MAX_BUNDLE_SIZE, "64000");
        builder.put(CLUSTER_UDP_MAX_BUNDLE_TIMEOUT, "30");
        builder.put(CLUSTER_UDP_ENABLE_DIAGNOSTICS, "true");
        builder.put(CLUSTER_UDP_TIMER_MIN_THREADS, "2");
        builder.put(CLUSTER_UDP_TIMER_MAX_THREADS, "4");
        builder.put(CLUSTER_UDP_TIMER_KEEP_ALIVE_TIME, "3000");
        builder.put(CLUSTER_UDP_TIMER_QUEUE_MAX_SIZE, "500");
        builder.put(CLUSTER_UDP_THREAD_POOL_ENABLED, "true");
        builder.put(CLUSTER_UDP_THREAD_POOL_MIN_THREADS, "2");
        builder.put(CLUSTER_UDP_THREAD_POOL_MAX_THREADS, "8");
        builder.put(CLUSTER_UDP_THREAD_POOL_KEEP_ALIVE_TIME, "5000");
        builder.put(CLUSTER_UDP_THREAD_POOL_QUEUE_ENABLED, "true");
        builder.put(CLUSTER_UDP_THREAD_POOL_QUEUE_MAX_SIZE, "10000");
        builder.put(CLUSTER_UDP_OOB_THREAD_POOL_ENABLED, "true");
        builder.put(CLUSTER_UDP_OOB_THREAD_POOL_MIN_THREADS, "1");
        builder.put(CLUSTER_UDP_OOB_THREAD_POOL_MAX_THREADS, "8");
        builder.put(CLUSTER_UDP_OOB_THREAD_POOL_KEEP_ALIVE_TIME, "5000");
        builder.put(CLUSTER_UDP_OOB_THREAD_POOL_QUEUE_ENABLED, "false");
        builder.put(CLUSTER_UDP_OOB_THREAD_POOL_QUEUE_MAX_SIZE, "500");
        builder.put(CLUSTER_UDP_MERGE3_MIN_INTERVAL, "10000");
        builder.put(CLUSTER_UDP_MERGE3_MAX_INTERVAL, "30000");
        builder.put(CLUSTER_UDP_FD_SOCK_START_PORT, "0");
        builder.put(CLUSTER_UDP_FD_SOCK_CLIENT_BIND_PORT, "0");
        builder.put(CLUSTER_UDP_FD_SOCK_PORT_RANGE, "50");
        builder.put(CLUSTER_UDP_FD_SOCK_NUM_TRIES, "3");
        builder.put(CLUSTER_UDP_VERIFY_SUSPECT_TIMEOUT, "1500");
        builder.put(CLUSTER_UDP_NACKACK2_XMIT_INTERVAL, "500");
        builder.put(CLUSTER_UDP_NACKACK2_XMIT_TABLE_NUM_ROWS, "100");
        builder.put(CLUSTER_UDP_NACKACK2_XMIT_TABLE_MSGS_PER_ROW, "2000");
        builder.put(CLUSTER_UDP_NACKACK2_XMIT_TABLE_MAX_COMPACTION_TIME, "30000");
        builder.put(CLUSTER_UDP_NACKACK2_MAX_MSG_BATCH_SIZE, "500");
        builder.put(CLUSTER_UDP_NACKACK2_USE_MCAST_XMIT, "false");
        builder.put(CLUSTER_UDP_NACKACK2_DISCARD_DELIVERED_MSGS, "true");
        builder.put(CLUSTER_UDP_UNICAST3_XMIT_INTERVAL, "500");
        builder.put(CLUSTER_UDP_UNICAST3_XMIT_TABLE_NUM_ROWS, "100");
        builder.put(CLUSTER_UDP_UNICAST3_XMIT_TABLE_MSGS_PER_ROW, "2000");
        builder.put(CLUSTER_UDP_UNICAST3_XMIT_TABLE_MAX_COMPACTION_TIME, "60000");
        builder.put(CLUSTER_UDP_UNICAST3_CONN_EXPIRY_TIMEOUT, "0");
        builder.put(CLUSTER_UDP_UNICAST3_MAX_MSG_BATCH_SIZE, "500");
        builder.put(CLUSTER_UDP_STABLE_STABILITY_DELAY, "1000");
        builder.put(CLUSTER_UDP_STABLE_DESIRED_AVG_GOSSIP, "50000");
        builder.put(CLUSTER_UDP_STABLE_MAX_BYTES, "40000000");
        builder.put(CLUSTER_UDP_GMS_PRINT_LOCAL_ADDR, "false");
        builder.put(CLUSTER_UDP_GMS_JOIN_TIMEOUT, "2000");
        builder.put(CLUSTER_UDP_GMS_VIEW_BUNDLING, "true");
        builder.put(CLUSTER_UDP_UFC_MAX_CREDITS, "20000000");
        builder.put(CLUSTER_UDP_UFC_MIN_THRESHOLD, "0.4");
        builder.put(CLUSTER_UDP_MFC_MAX_CREDITS, "20000000");
        builder.put(CLUSTER_UDP_MFC_MIN_THRESHOLD, "0.4");
        builder.put(CLUSTER_UDP_FRAG2_FRAG_SIZE, "60000");
        builder.put(CLUSTER_UDP_RSVP_RESEND_INTERVAL, "2000");
        builder.put(CLUSTER_UDP_RSVP_TIMEOUT, "10000");
        builder.put(CLUSTER_TCP_RECV_BUF_SIZE, "50000000");
        builder.put(CLUSTER_TCP_SEND_BUF_SIZE, "50000000");
        builder.put(CLUSTER_TCP_MAX_BUNDLE_SIZE, "64000");
        builder.put(CLUSTER_TCP_MAX_BUNDLE_TIMEOUT, "30");
        builder.put(CLUSTER_TCP_USE_SEND_QUEUES, "true");
        builder.put(CLUSTER_TCP_SOCK_CONN_TIMEOUT, "300");
        builder.put(CLUSTER_TCP_TIMER_MIN_THREADS, "4");
        builder.put(CLUSTER_TCP_TIMER_MAX_THREADS, "10");
        builder.put(CLUSTER_TCP_TIMER_KEEP_ALIVE_TIME, "3000");
        builder.put(CLUSTER_TCP_TIMER_QUEUE_MAX_SIZE, "500");
        builder.put(CLUSTER_TCP_THREAD_POOL_ENABLED, "true");
        builder.put(CLUSTER_TCP_THREAD_POOL_MIN_THREADS, "2");
        builder.put(CLUSTER_TCP_THREAD_POOL_MAX_THREADS, "8");
        builder.put(CLUSTER_TCP_THREAD_POOL_KEEP_ALIVE_TIME, "5000");
        builder.put(CLUSTER_TCP_THREAD_POOL_QUEUE_ENABLED, "true");
        builder.put(CLUSTER_TCP_THREAD_POOL_QUEUE_MAX_SIZE, "10000");
        builder.put(CLUSTER_TCP_OOB_THREAD_POOL_ENABLED, "true");
        builder.put(CLUSTER_TCP_OOB_THREAD_POOL_MIN_THREADS, "1");
        builder.put(CLUSTER_TCP_OOB_THREAD_POOL_MAX_THREADS, "8");
        builder.put(CLUSTER_TCP_OOB_THREAD_POOL_KEEP_ALIVE_TIME, "5000");
        builder.put(CLUSTER_TCP_OOB_THREAD_POOL_QUEUE_ENABLED, "false");
        builder.put(CLUSTER_TCP_OOB_THREAD_POOL_QUEUE_MAX_SIZE, "100");
        builder.put(CLUSTER_TCP_MERGE3_MIN_INTERVAL, "10000");
        builder.put(CLUSTER_TCP_MERGE3_MAX_INTERVAL, "30000");
        builder.put(CLUSTER_TCP_FD_TIMEOUT, "3000");
        builder.put(CLUSTER_TCP_FD_MAX_TRIES, "3");
        builder.put(CLUSTER_TCP_VERIFY_SUSPECT_TIMEOUT, "1500");
        builder.put(CLUSTER_TCP_FD_SOCK_START_PORT, "0");
        builder.put(CLUSTER_TCP_FD_SOCK_CLIENT_BIND_PORT, "0");
        builder.put(CLUSTER_TCP_FD_SOCK_PORT_RANGE, "50");
        builder.put(CLUSTER_TCP_FD_SOCK_NUM_TRIES, "3");
        builder.put(CLUSTER_TCP_NAKACK2_USE_MCAST_XMIT, "false");
        builder.put(CLUSTER_TCP_NAKACK2_DISCARD_DELIVERED_MSGS, "true");
        builder.put(CLUSTER_TCP_STABLE_STABILITY_DELAY, "1000");
        builder.put(CLUSTER_TCP_STABLE_DESIRED_AVG_GOSSIP, "50000");
        builder.put(CLUSTER_TCP_STABLE_MAX_BYTES, "40000000");
        builder.put(CLUSTER_TCP_GMS_PRINT_LOCAL_ADDR, "false");
        builder.put(CLUSTER_TCP_GMS_JOIN_TIMEOUT, "2000");
        builder.put(CLUSTER_TCP_GMS_VIEW_BUNDLING, "true");
        builder.put(CLUSTER_TCP_MFC_MAX_CREDITS, "20000000");
        builder.put(CLUSTER_TCP_MFC_MIN_THRESHOLD, "0.4");
        builder.put(CLUSTER_TCP_FRAG2_FRAG_SIZE, "60000");
        builder.put(CLUSTER_S3_TIMEOUT, "2000");
        return builder.build();
    }
}
